/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package agriculturaguillermo;

import Usuarios.cUsuario;
import Utilidades.resaltadores;
import Utilidades.utils;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;

/**
 *
 * @author humberto
 */
public class guiAutenticar extends JFrame{
    
    
    
    private cUsuario usuario;
    
    private JTextField tUsuario;
    private JPasswordField tPassword;   
    
    private JButton bAcceder;
    
    private JLabel fondo;
    private ImageIcon imagenFondo;
    
    private static guiAutenticar identidad;
    private static guiAutenticar instancia=null;

    
    
    private guiAutenticar(){
       // super("Agregar Nuevo Objeto",false,true,true,true);
        this.setTitle("Bienvenido a FULL AGRICOLA");
        this.setLayout(null);
        this.setSize(740,500);
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.setResizable(false);
        inicializarComponentes();
        agregarComponentes();
        agregarListeners();
        this.identidad=this;
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        tUsuario.requestFocus();    

    }
    
    public static guiAutenticar obtenerInstancia(){
        
        if(instancia==null){
            instancia=new guiAutenticar();
            return instancia;
        }
        utils.mostrarVentana(identidad);
        return instancia;

    }


    public void inicializarComponentes(){
        
        usuario = new cUsuario();
        java.awt.Font fuente =  new java.awt.Font("Arial", 0, 17);

        
        tUsuario = new JTextField(12);
        tUsuario.setBounds(280,110,180,25);
        tUsuario.setFont(fuente);
        tUsuario.setText("Ingrese el Usuario");     
                
        tPassword = new JPasswordField(12);
        tPassword.setBounds(280,140,180,25);
        tPassword.setFont(fuente);
        tPassword.setText("Password");
    
        
        bAcceder = new JButton(new ImageIcon("./figuras/entrar.png"));
        bAcceder.setBounds(280,170,100,30);
        
        imagenFondo = new ImageIcon("./figuras/fondoAcceso.png");
        fondo= new JLabel();
        fondo.setIcon(imagenFondo );
        fondo.setSize(imagenFondo.getIconWidth(), imagenFondo.getIconHeight());
        
        
    }

    public void agregarComponentes(){
             
      
        this.add(tUsuario);
        this.add(tPassword);
        this.add(bAcceder);
        this.add(fondo);
        
    }



     private void agregarListeners(){
         
         resaltadores.resaltadorJtextfield(tUsuario);
         resaltadores.resaltadorJtextfield(tPassword);
         
         //PARA LA VENTANA
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); 
        
        this.addWindowListener(new WindowAdapter(){ 
          
            public void windowClosing(WindowEvent e) { 
                
                System.exit(0);
            } 

        }); 
        Action actEsc = new AbstractAction() { public void actionPerformed(ActionEvent e) {
            System.exit(0);
        
        }};
        fondo.getInputMap(fondo.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"),"accion");
        fondo.getActionMap().put("accion", actEsc);
           
         
         //ACCION PARA EL BOTON ENTER
         Action actEnter = new AbstractAction() {    
      
         public void actionPerformed(ActionEvent e) {bAcceder.doClick();}
          };
         
         bAcceder.addActionListener(new ActionListener() {

            
            public void actionPerformed(ActionEvent e) {
                if(usuario.acceder(tUsuario.getText(), String.valueOf(tPassword.getPassword()))){
                    new sisagro(identidad,usuario.esAdministrador(tUsuario.getText(), String.valueOf(tPassword.getPassword())));
                    identidad.setVisible(false);
                }
                else{ 
                    JOptionPane.showMessageDialog(null, "¿Acaso los datos están mal Ingresados? ",
                        "Error de Datos de Entrada",
                            JOptionPane.ERROR_MESSAGE);
                tUsuario.requestFocus();
                }
             }
        });
        
         bAcceder.getInputMap(bAcceder.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ENTER"),"accion");
         bAcceder.getActionMap().put("accion", actEnter);       
    }   
}
